package com.wisdytech.linkdcs.configuration.service;

import com.wisdytech.common.bean.ConfigurationData;

import java.util.List;
import java.util.Map;

/**
 * 组态设计服务层接口
 */
public interface IConfigurationDesignService {


    Map<String, Object> getBasicData(String level, String baseNo, String factory);


    Map<String, Object> getHcAndBdEquipStatusInfo(String factoryId, String columnNo);


    /**
     * 获取厂区下的车间和产线
     */
    List<Map<String, Object>> getShopAndLines(String key);

    /**
     * 获取所有设备参数
     *
     * @return list
     */
    List<Map<String, Object>> getEquipCodes();


    /**
     * 根据主键获取设备参数
     *
     * @return map
     */
    List<Map<String, Object>> getEquipParams(String pkId);


    /**
     * 获取目标路径下所有的js文件名
     *
     * @param dir  文件夹路径
     * @param type 类型
     * @return list
     */
    List<Map<String, Object>> getFiles(String dir, String type);

    /**
     * 获取目标路径下所有的js文件名
     *
     * @param dir 文件夹路径
     * @return list
     */
    List<Map<String, Object>> getItemFils(String dir);


    /**
     * json文件获取
     *
     * @param fileKey 主键
     * @param name    相对路径加文件名加后缀
     * @param type    类型
     * @return string json
     */
    ConfigurationData getFileContent(String fileKey, String name, String type);


    /**
     * 上传指定文件
     * 1、保存组态设计json
     * 2、保存临时使用json
     *
     * @param path    文件夹路径
     * @param fileKey 组态设计器唯一id
     * @param name    文件名
     * @param content 内容
     * @param type    类型
     * @param equipNo 设备编码json
     * @return
     */
    boolean saveFile(String path, String fileKey, String name, String content, String type, String equipNo,String center, String eye);

    /**
     * 文件名检测
     *
     * @param dir  文件夹路径
     * @param name 文件名
     * @return
     */
    boolean checkControlName(String dir, String name);

    /**
     * 文件上传
     *
     * @param file
     * @param filePath
     * @param fileName
     * @return
     */
    void uploadFile(byte[] file, String filePath, String fileName);

}
